package com.tanklab.signature.service;

import com.tanklab.signature.ds.req.UserLoginReq;
import com.tanklab.signature.ds.req.UserProfileUpdateReq;
import com.tanklab.signature.ds.req.UserRegisterReq;
import com.tanklab.signature.ds.resp.CommonResp;
import com.tanklab.signature.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tanklab.signature.entity.UserSignature;

import java.util.List;


public interface UserService extends IService<User> {
    // Deprecated
    CommonResp login(UserLoginReq userloginreq);

    // Deprecated
    CommonResp register(UserRegisterReq userRegisterReq);

    /**
     * 更新用户头像
     * @param openid 用户openid
     * @param avatarUrl 头像URL
     * @return 更新是否成功
     */
    boolean updateUserAvatar(String openid, String avatarUrl);

    /**
     * 更新用户基本资料
     *
     * @param profileReq 用户资料请求
     * @param openid 用户openid
     * @return 操作结果
     */
    CommonResp updateUserProfile(UserProfileUpdateReq profileReq, String openid);

    /**
     * 获取用户基本资料
     *
     * @param openid 用户openid
     * @return 用户资料
     */
    CommonResp getUserProfile(String openid);

    /**
     * 上传用户签名图片并上链
     * @param openid 用户openid
     * @param signatureUrl 签名图片URL
     * @return 操作结果
     */
    CommonResp uploadSignature(String openid, String signatureUrl);

    /**
     * 获取用户签名信息
     * @param openid 用户openid
     * @return 用户签名信息，包括签名URL、哈希值和交易ID
     */
    CommonResp getUserSignature(String openid);

    /**
     * 获取用户当前活跃签名
     * @param openid 用户openid
     * @return 当前活跃签名信息
     */
    UserSignature getActiveSignature(String openid);

    /**
     * 获取用户签名历史记录
     * @param openid 用户openid
     * @return 用户所有签名记录
     */
    List<UserSignature> getUserSignatureHistory(String openid);
}
